#!/usr/bin/env python
# coding: utf-8

# In[26]:


import pandas as pd
import numpy as np


# In[27]:


sheet_1=pd.read_excel('./18级高一体测成绩汇总.xls')
sheet_1.head()


# In[28]:


sheet_2=pd.read_excel('./18级高一体测成绩汇总.xls',sheet_name = 1)
sheet_2.head()


# In[29]:


sheet_s=pd.read_excel('./体侧成绩评分表.xls',header = [0,1])
sheet_s.head()


# In[63]:


sheet_1.dtypes


# In[67]:


sheet_1['男体前屈']=sheet_1['男体前屈'].astype(float)
sheet_1['男引体']=sheet_1['男引体'].astype(float)
sheet_1['男肺活量']=sheet_1['男肺活量'].astype(float)
sheet_1['BMI']=sheet_1['BMI'].astype(float)


# In[68]:


sheet_1.dtypes


# In[79]:


def convert(x):
    if isinstance(x,str):#字符串格式
        minute,second = x.split("'")#将分和秒切开
        minute = int(minute)#转化
        second = int(second)
        return minute + second/100.0
    else:
        return x


# In[84]:


sheet_1['男1000米跑']=sheet_1['男1000米跑'].map(convert)
sheet_1.head()
sheet_2['女800米跑']=sheet_2['女800米跑'].map(convert)


# In[92]:


sheet_1.columns = ['班级', '性别', '男1000米跑', '男50米跑', '男跳远', '男体前屈', '男引体', '男肺活量', '身高', '体重','BMI']
sheet_1.head()


# In[95]:


def convert(item):
    m,s = item.strip('"').split("'")
    m,s = int(m),int(s)
    return m + s/100.0
sheet_s.iloc[:,-4] = sheet_s.iloc[:,-4].map(convert)
 
 
# 女生成绩，进行转化
def convert(item):
    m,s = item.strip('"').split("'")
    m,s = int(m),int(s)
    return m + s/100.0
sheet_s.iloc[:,-2] = sheet_s.iloc[:,-2].map(convert)
 
sheet_s


# In[96]:


for col in ['男1000米跑', '男50米跑']:        
    #     获取成绩的标准
        s = sheet_s[col]
        
        def convert(x):
            for i in range(len(s)):
                if x <= s['成绩'].iloc[0]:
                    if x == 0:
                        return 0#没有参加这个项目
                    return 100
                elif x > s['成绩'].iloc[-1]:
                    return 0 #跑的太慢
                elif (x > s['成绩'].iloc[i - 1]) and (x <= s['成绩'].iloc[i]):
                    return s['分数'].iloc[i]
        
        sheet_1[col + '成绩'] = sheet_1[col].map(convert)


# In[98]:


sheet_1.head()


# In[100]:


for col in ['男跳远', '男体前屈', '男引体', '男肺活量']:    
    def convert(x):
        for i in range(len(s)):
            if x >= s['成绩'].iloc[i]:
                return s['分数'].iloc[i]
        return 0
    
    sheet_1[col + '成绩'] = sheet_1[col].map(convert)


# In[101]:


sheet_1.head()


# In[103]:


cols=['班级', '性别', '男1000米跑','男1000米跑成绩', '男50米跑', '男50米跑成绩',
 '男跳远', '男跳远成绩', '男体前屈', '男体前屈成绩',  '男引体', '男引体成绩','男肺活量', '男肺活量成绩', '身高',
       '体重','BMI']
sheet_1=sheet_1[cols]
sheet_1.head()


# In[ ]:




